package com.activemq;

import lombok.extern.slf4j.Slf4j;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.command.ActiveMQTextMessage;
import org.springframework.boot.autoconfigure.jms.JmsProperties;

import javax.jms.*;

/**
 * provider（activemq）
 * producer（生产者）
 * consumer（消费者）
 * message（消息）：消息头、消息体、消息属性
 * 消息头：deliveryMode：持久化模式（消息发送后不会丢失），非持久模式（发送后，服务器宕机无法恢复），timeToLive：0是不过期；priority：默认是4级，9级最高，先发9；MessageID：唯一标识
 * 消息体：
 * 消息属性：
 */
@Slf4j
public class MqHelloWorld {
    public static final String URL = "failover://tcp://wangweiye:61616";

    public static final String QUEUE = "QUEUE01";

    public static final String TOPIC = "TOPIC01";

    public static void main(String[] args) throws Exception {
        ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(URL);
        Connection connection = factory.createConnection();
        connection.start();
        Session session = connection.createSession(false, JmsProperties.AcknowledgeMode.AUTO.getMode());
        Queue queue = session.createQueue(QUEUE);
        MessageProducer producer = session.createProducer(queue);
        for (int i = 0; i < 6; i++) {
            TextMessage textMessage = new ActiveMQTextMessage();
            textMessage.setText("测试_" + i);
            producer.send(textMessage);
        }
        producer.close();
        session.close();
        connection.close();
    }
}
